package main

import (
	"bufio"
	"fmt"
	"net"
	"os"
)

/*
聊天室客户端代码
*/
// listenServer 监听服务端消息线程
func listenServer(conn net.Conn) {
	defer conn.Close()
	for {
		// 阻塞等待服务器返回消息
		var buf = make([]byte, 1024)
		n, err := conn.Read(buf)
		if err != nil {
			fmt.Println("接收服务器消息异常!", err)
		}
		var content = string(buf[:n])
		fmt.Println(content)
	}
}

func main() {
	// 思路: 主线程用于监听控制台消息 => 发送给服务器
	// 与服务器建立连接(三次握手)
	conn, err := net.Dial("tcp", "127.0.0.1:9090")
	if err != nil {
		fmt.Println("连接服务器异常!", err)
	}
	// 启动线程监听服务器
	go listenServer(conn)
	for {
		// 监听用户输入
		fmt.Println(">>>:")
		reader := bufio.NewReader(os.Stdin)
		inputBytes, _ := reader.ReadBytes('\n')
		// 将用户输入内容发送给服务器
		conn.Write(inputBytes)
	}
}
